Global contrast correction

ABSTRACT

Systems and methods may apply global contrast correction to a plurality of thermal images. For example, a vehicle may capture a plurality of aerial thermal images for use in generating a composite image. Each individual thermal image may be individually contrasted based on the temperature range of pixels in that image, so the contrast range of the thermal images may vary. The plurality of thermal images may be analyzed to determine a global contrast range. Extreme temperatures may be excluded from the global contrast range. Based on the global contrast range, a contrast level of each of the plurality of thermal images may be adjusted. For example, the individual temperature range of each thermal image may be scaled to a global temperature range. A composite image having consistent contrasting may be generated from the plurality of thermal images.

RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.15/136,358 filed on Apr. 22, 2016, titled “Systems and Methods forProducing Temperature Accurate Thermal Images,” which is a continuationof and claims priority to U.S. patent application Ser. No. 14/212,527filed on Mar. 14, 2014, titled “Global Contrast Correction,” which inturn claims priority and benefit under 35 U.S.C. § 119(e) of U.S.Provisional Patent Application No. 61/791,379, filed Mar. 15, 2013, andtitled “Global Contrast Correction for Ortho-Rectified Images” and U.S.Provisional Patent Application No. 61/893,687, filed Oct. 21, 2013, andtitled “Systems and Methods for Producing Temperature Accurate ThermalImages,” each of which is hereby incorporated by reference in itsentirety to the extent the subject matter is not inconsistent herewithand for the earliest possible effective filing date based on the claimsset forth below.

TECHNICAL FIELD

This disclosure relates to systems and methods for providing globalcontrast correction. More specifically, this disclosure relates toglobal contrast correction for thermal images.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram illustrating one embodiment of a system forgenerating a globally contrasted composite image.

FIG. 2 is a schematic block diagram illustrating one embodiment of thesystem in accordance with embodiments of the present disclosure.

FIG. 3 is a schematic block diagram illustrating one embodiment of theimage generator in accordance with embodiments of the presentdisclosure.

FIG. 4 is a schematic diagram illustrating one embodiment of ahistogram.

FIG. 5 is an aerial view of a terrain illustrating a composite imagehaving non-uniformly contrasted individual images (before processing)compared to a composite image that is uniformly contrasted.

FIG. 6 is a flow diagram of one embodiment of a method of globalcontrast adjustment of individual images to form uniformly contrastedcomposite image in accordance with one embodiment of the presentdisclosure.

FIG. 7 illustrates a diagrammatic representation of a machine in theexemplary form of a computing system within which a set of instructions,for causing the machine to perform any one or more of the methodologiesdiscussed herein, may be executed.

DETAILED DESCRIPTION

Methods and apparatuses for global contrast correction of images arepresented. In the following description, numerous details are set forth.It will be apparent, however, to one of ordinary skill in the art havingthe benefit of this disclosure, that embodiments of the presentinvention may be practiced without these specific details.

FIG. 1 is a diagram illustrating one embodiment of a system 100 forgenerating a globally contrasted composite image. In the depictedembodiment, a vehicle 102 follows a path 104 over terrain 106 whilecapturing images with an image capture device 108 for processing by animage generator 110. The vehicle 102 is capable of traversing over or onthe terrain 106 and following a path determined, in part, by thecapabilities of the image capture device 108. In the depictedembodiment, the vehicle 102 is an airplane. Other examples of vehicles102 suitable for use in embodiments of the present disclosure include,but are not limited to, vehicles capable of flight (i.e., helicopters,gliders, drones, powered parachutes or gliders), and vehicles capable ofland- or water-based travel.

The path 104, in one embodiment, is pre-determined according to avariety of factors that may include, the width of the area to becovered, and the field of view of the image capture device 110. Forexample, if the width of the field of view of the image capture device108 is approximately 1000 feet when the vehicle is at an altitude of10,000 feet, then to capture the terrain 106 having a width of about5000 feet, a total of at least five passes across the terrain 106 arerequired. Images captured by the image capture device 108 may be storedin the image generator 110. Each image captures a portion of the terrain106, and a large number of images may be required to generate acomposite image of the entire terrain 106. However, each image may becaptured with a different contrast level, among other variables (i.e.,perspective).

The depicted embodiment illustrates an area having inconsistent contrastlevels. For example, region 112, 114, 116, 118 each illustrate an areahaving a contrast level that is not consistent with an adjacent region.A “hotspot” in one of the regions 112, 114, 116, and 118 may skew thecontrast levels for the entire region and cause the contrast levels ofthe region to not be consistent with an adjacent region. The contrastlevel of a region will be described below with reference to FIG. 4.Although the systems and methods to be described below will be describedwith reference to a thermal images of the terrain, the principlesdescribed herein may be applicable to other types of images.

The image generator 110, beneficially, is configured to receive imagesfrom the image capture device 108, store the images together with imagemetadata information, and process the images to create a composite imagewith a consistent contrast level. As used herein, the phrase “compositeimage” refers to an image formed of many smaller images. Stateddifferently, a composite image may be an image of a city that is formedof smaller images, where each of the smaller images is an image of onecity block, for example. The smaller images may be stitched together toform the larger composite image.

The image capture device 108 is, in one embodiment, a thermographiccamera. The image capture device (hereinafter “camera”) 108 isconfigured to form an image using infrared radiation to capturetemperature information of the terrain. The amount of radiation emittedby an object increases with temperature; therefore, the thermal imageallows a person to see variations in temperature. Warm objects stand outagainst cooler backgrounds. The “brightest” part of the image may becolored white, generally, while the coolest areas of the image may becolored black. Although the following description may describe the imagewith reference to a black and white color space, it is to be understoodthat the described principles apply equally to colored thermal images.In a gray-scale thermal image, the camera 108 maps temperatures todifferent shades of grayscale. One example of a thermographic camerasuitable for use with embodiments of the present disclosure is the ICI7640 P-Series Infrared Camera manufactured by Infrared Cameras, Inc. ofBeaumont Tex.

FIG. 2 is a schematic block diagram illustrating one embodiment of thesystem 100 in accordance with embodiments of the present disclosure. Thesystem 100 is configured to capture images of the terrain 108, contrastcorrect, and orthorectify the images, and create a composite image ofthe entire terrain 106. Images captured by the camera 108 may be takenfrom different perspectives (angles). Because the terrain 106 is notflat, images captured by the camera 108 may not effectively convey thetopography of the terrain. Orthorectification is the process by whichthe image generator 110 creates a three-dimensional model of the terrain106 and matches the images to the three-dimensional model. Points ofinterest are sampled from the image and are assembled on thethree-dimensional model. The image generator then adjusts the images tomatch the points of interest in the images with the points of intereston the three-dimensional model.

The camera 108, as described above, is capable of capturing a portion202 of the terrain. Accordingly, to properly capture a large area, thecamera 108 captures a series of images to form into a composite image.The area of the terrain 106 that the camera 108 is capable of capturingis referred to as the field of view, as described above. The imagegenerator 110 maintains the series of images together with metadatarelating to each image. The image may be captured, by the camera 108, inany one of different image formats including, but not limited to, jpeg,tiff, bmp, raw, dat, etc.

FIG. 3 is a schematic block diagram illustrating one embodiment of theimage generator 110 in accordance with embodiments of the presentdisclosure. As described above, the image generator 110 is configured tostore the series of images. The image generator 110, in one embodiment,includes a data store 302 for maintaining image information 304.Although depicted as a database, the data store 302 may also be any typeof data repository. The image information 304 may be maintained in theform of any database schema, or in the form of a file that can storedata. The database schema may be of the type of a relational database oran object oriented database, an operational data store. Alternatively,the data store 302 may be a schema-less data store, for example, adistributed data store.

The image information 304, in one example, includes a series of images306. Each image 306 may be stored with metadata 308. The metadata 308,in one embodiment, includes any type of relevant image informationincluding, but not limited to, gps information, speed of the vehicle,ambient temperature, altitude, angle of image capture, etc.

The level analyzer 310, in one embodiment, is configured to analyze thecontrast of each of the images 306 to determine a high and a lowcontrast level. The level analyzer 310 also is configured to determine atonal distribution of each image. One example of a tonal distribution isa histogram that is graphical representation of the tonal distributionof each image 306. The level analyzer 310, accordingly, may beconfigured to generate a histogram that calculates how many pixels ofeach image correspond to a particular tonal value. For example, using agrayscale color space of 256 shades of grayscale, the level analyzer 310is configured to determine how many pixels in an image correspond toeach of the different 256 shades of grayscale. In other words, the levelanalyzer 310 may produce the histogram by separating the differentshades of the image into 256 categories and counting the number of imagepixels in each category. The level analyzer 310 is configured to analyzeeach image and update the metadata 308 of each image with the result ofthe analysis. In one example, the result of the analysis is a table ofthe pixel counts. In another embodiment, the result of the analysis is ahigh and a low value for a brightness of the image.

In another embodiment, the level analyzer generates a cumulativeprobability distribution function based on the histogram of each image.The cumulative probability distribution function is a function that maybe generated to describe the histogram distribution. In other words, thecumulative probability distribution function describes how the pixels ofthe image are distributed across a number of discrete colors, forexample, 256 shades of grayscale.

The contrast converter 312 is configured to access the metadata 308 ofeach image to adjust the contrast of each image to generate a uniformcomposite image of the images 306. In one example, the contrastconverter 312 is configured to identify a high brightness level of eachindividual image and a low brightness level of each individual image.The contrast converter 312 then determines a global high contrast leveland a global low contrast level. In one embodiment, contrast converter312 is configured to map the global high contrast level to a high rangeof predetermined discrete colors, and the global low contrast level to alow range of the predetermined discrete colors. For example, if therange of predetermined discrete colors is a range of grayscale colors,from 0-255, then the global high contrast level is mapped to the high255, and the global low contrast level is mapped to 0.

In another embodiment, the contrast converter 312 is configured toaccess the metadata of each image and generate a uniform composite imageby analyzing the temperature range of each image. In this example, thecontrast converter 312 identifies and maintains a maximum temperature,and a minimum temperature of each of the individual images. The contrastconverter 312 is configured to average all of the maximum temperaturesfrom all of the images, and likewise, average the minimum temperature ofall of the images. The contrast converter 312 then maps the averagemaximum temperature to the high end of the color range, and the averageminimum temperature is mapped to the low end of the temperature range.For temperatures in-between, the contrast converter 312 scales thenumber of discrete temperatures to correspond to the number of discreteshades of grayscale, for example shade 0 to shade 255. For example, ifthe average temperature range of the images is 70 to 102 degrees, thecontrast converter 312 is configured to map the average minimum of 70degrees to shade 0, and the average maximum of 102 degrees to shade 255.The range of 32 degrees is scaled to match the 256 shades of grayscale,or in other words, each degree of temperature is scaled to eight shadesof grayscale.

In this embodiment, the contrast converter 312 is configured to receive,from the user, an acceptable range of temperatures. In other words, theuser may specify an acceptable range of temperatures to be displayed inthe resulting composite image. Accordingly, temperature anomalies may bedisregarded, and not included in the average temperature calculation.For example, a device, such as a generator, that causes the thermographto record a temperature an order of magnitude greater than an adjacentregion may be disregarded so as to not skew the average calculation.

In another embodiment, the contrast converter 312 is configured, asdescribed above, to identify the global high temperature and the globallow temperature and scale a temperature range of each individual imageto match the global high temperature and the global low temperature. Forexample, If the global high temperature is 110 degrees, and the globallow temperature is 55 degrees, the contrast converter 312 is configuredto skew each individual image to match a temperature range of 55 degrees(i.e., the difference between the global high and low). As such, if animage has a temperature range of 27.5 degrees, the contrast converter312 is configured to “stretch” the color range to match the globaltemperature range of 55 degrees.

In yet another embodiment, the contrast converter 312 is configured toanalyze the cumulative probability distribution function of each image.The contrast converter 312, in this embodiment, is configured tonormalize each image based on the cumulative probability distributionfunction and match the histograms of each image to form a consistent, orglobally contrasted, composite image. Starting from a reference imagewith a function F1, which may be selected by a user, and one of theimages with a distribution function F2, the contrast converter 312identifies a first gray level value G1 (e.g., between 0 and 255) for thedistribution function F1, and a second gray level value G2 for thedistribution function F2, such that F1(G1)=F2(G2). The contrastconverter 312, subsequently, is configured to determine a matchingfunction that when applied to each pixel in each of the images resultsin a globally contrasted composite image.

In each of the above embodiments, where temperature is discussed, it isto be understood that any data value representing different temperaturevalues may be substituted for the temperature values. For example, pixelcounts from a histogram may be used in place of temperature values.

The image generator 110 includes an orthorectifier 314 and ageoreference 316 for the final generation of the composite image. Asdescribed above, the orthorectifier 314 and georeferencer 316 areconfigured to map images to a three-dimensional model of the terrain.The three-dimensional model of the terrain may be generated by a laserrangefinder in communication with the image generator 110 such that theimage generator 110 may store laser rangefinder information with themetadata 308. The individual images 306, after having been contrastcorrected, may be mapped to the three-dimensional model, as describedabove.

FIG. 4 is a schematic diagram illustrating one embodiment of a histogram400. The histogram 400, generally, is a diagram of pixel counts on they-axis as compared to distinct tonal values on the x-axis. The distincttonal values may be, in one embodiment, discrete color values. The colorvalues, as described above, may correspond to the grayscale color space.Accordingly, the tonal values across the x-axis may be representative ofthe 256 grayscale shades.

The histogram 400 allows the contrast converter 312 to generate aprobability distribution 402 for each image. The probabilitydistribution 402 represents the distribution of colors across the rangeof discrete colors. As described above, the contrast converter 312 maybe configured to determine a matching function, and subsequently applythe matching function to each individual image to generate a uniformlycontrasted composite image. In another embodiment, the contrastconverter 312 is configured to identify a statistical high (e.g., 75%)and low range (e.g., 25%) for each image by analyzing the peaks of thehistogram 400, to determine where the bulk of the “brightness” or“color” of the image lies, in a manner similar to a bell-curve analysis.For example, the high and low pixel count may be 7500 and 4500 pixels.The contrast converter 312 is configured to determine a global highpixel count 7500 (which corresponds to an upper temperature), and aglobal low pixel count (which corresponds to a lower temperature). Thecontrast converter 312 then converts the upper temperature and the lowertemperature to a range which is scaled to the number of discretetemperatures as described above.

FIG. 5 is an aerial view of a terrain illustrating a composite image 500having non-uniformly contrasted individual images (before processing)compared to a composite image 502 that is uniformly contrasted. Theregions of the FIG. 500 demonstrate how sections may be contrastedbrighter than an adjacent region. “Hot spots,” depicted as the almostwhite regions, tend to dominate and affect an entire individual image.The map 502, however, has been contrasted according to one of theembodiments described above. The contrast of each individual image hasbeen scaled to match a global contrast scale determined by one of themethods described previously. A verifiable “hot spot” is now visible andnot obscured by the skewed contrast levels of the map 500.

FIG. 6 is a flow diagram of one embodiment of a method 600 of globalcontrast adjustment of individual images to form uniformly contrastedcomposite image in accordance with one embodiment of the presentdisclosure. The method 600 is performed by processing logic that maycomprise hardware (circuitry, dedicated logic, etc.), software (such asis run on a general-purpose computing system or a dedicated machine), ora combination of both. In one embodiment, the image generator 110performs the method 600.

Referring to FIG. 6, the processing logic begins the method 600 bycapturing images, at block 602. In one embodiment, the processing logiccaptures images by directing an image capture device to capture a seriesof images taken with a frequency determined by environmental variables.The environmental variables may include, but are not limited to, thechange of elevation of the terrain, the speed of the vehicle, or theambient brightness of the sun (e.g., % cloud cover, etc.). In anotherembodiment, the processing logic receives a series of already capturedphotos.

At block 604, the processing logic analyzes each image to determinecontrast levels. In one embodiment, the processing logic analyzes eachimage by generating a histogram for each image. That is to say, theprocessing logic determines how many pixels in each picture correspondto a discrete color or tonal value, and then the processing logicmaintains metadata for each image that contains the histogram.

At block 606, the processing logic determines global contrast levels. Inone embodiment, the processing logic determines global contrast levelsby either averaging a high and low temperature for each image, oridentifying a global high and low level for each image. The level mayrefer to a pixel count or a temperature as described above.

At block 608, the processing logic adjusts the level of each image basedon global contrast levels. The global contrast levels may refer totemperature ranges or pixel ranges. At block 610, the processing logicgenerates the global or composite image by orthorectifying andgeoreferencing the series of images to a three-dimensional map. Themethod 600 then ends.

FIG. 7 illustrates a diagrammatic representation of a machine in theexemplary form of a computing system 700 within which a set ofinstructions, for causing the machine to perform any one or more of themethodologies discussed herein, may be executed. Within the computersystem 700 is a set of instructions for causing the machine to performany one or more of the methodologies discussed herein. In alternativeembodiments, the machine may be connected (e.g., networked) to othermachines in a LAN, an intranet, an extranet, or the Internet. Themachine can be a host in a cloud, a cloud provider system, a cloudcontroller or any other machine. The machine can operate in the capacityof a server or a client machine in a client-server network environment,or as a peer machine in a peer-to-peer (or distributed) networkenvironment. The machine may be a personal computer (PC), a tablet PC, aconsole device or set-top box (STB), a Personal Digital Assistant (PDA),a cellular telephone, a web appliance, a server, a network router,switch or bridge, or any machine capable of executing a set ofinstructions (sequential or otherwise) that specify actions to be takenby that machine. Further, while only a single machine is illustrated,the term “machine” shall also be taken to include any collection ofmachines (e.g., computers) that individually or jointly execute a set(or multiple sets) of instructions to perform any one or more of themethodologies discussed herein.

The computer system 700 includes a processing device 702, a main memory704 (e.g., read-only memory (ROM), flash memory, dynamic random accessmemory (DRAM) such as synchronous DRAM (SDRAM) or DRAM (RDRAM), etc.), astatic memory 706 (e.g., flash memory, static random access memory(SRAM), etc.), and a secondary memory 718 (e.g., a data storage devicein the form of a drive unit, which may include fixed or removablecomputer-readable storage medium), which communicate with each other viaa bus 730.

Processing device 702 represents one or more general-purpose processingdevices such as a microprocessor, central processing unit, or the like.More particularly, the processing device 702 may be a complexinstruction set computing (CISC) microprocessor, reduced instruction setcomputing (RISC) microprocessor, very long instruction word (VLIW)microprocessor, processor implementing other instruction sets, orprocessors implementing a combination of instruction sets. Processingdevice 702 may also be one or more special-purpose processing devicessuch as an application specific integrated circuit (ASIC), a fieldprogrammable gate array (FPGA), a digital signal processor (DSP),network processor, or the like. Processing device 702 is configured toexecute the instructions 726 for performing the operations and stepsdiscussed herein.

The computer system 700 may further include a network interface device722. The computer system 700 also may include a video display unit 710(e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT))connected to the computer system through a graphics port and graphicschipset, an alphanumeric input device 712 (e.g., a keyboard), a cursorcontrol device 714 (e.g., a mouse), and a signal generation device 720(e.g., a speaker).

The secondary memory 718 may include a machine-readable storage medium(or more specifically a computer-readable storage medium) 724 on whichis stored one or more sets of instructions 726 embodying any one or moreof the methodologies or functions described herein. In one embodiment,the instructions 726 include instructions for the image generator 110 asdescribed herein. The instructions 726 may also reside, completely or atleast partially, within the main memory 704 and/or within the processingdevice 702 during execution thereof by the computer system 700, the mainmemory 704 and the processing device 702 also constitutingmachine-readable storage media.

The computer-readable storage medium 724 may also be used to store theinstructions 726 persistently. While the computer-readable storagemedium 724 is shown in an exemplary embodiment to be a single medium,the term “computer-readable storage medium” should be taken to include asingle medium or multiple media (e.g., a centralized or distributeddatabase, and/or associated caches and servers) that store the one ormore sets of instructions. The term “computer-readable storage medium”shall also be taken to include any medium that is capable of storing orencoding a set of instructions for execution by the machine and thatcause the machine to perform any one or more of the methodologies of thepresent invention. The term “computer-readable storage medium” shallaccordingly be taken to include, but not be limited to, solid-statememories, and optical and magnetic media.

The instructions 726, components and other features described herein canbe implemented as discrete hardware components or integrated in thefunctionality of hardware components such as ASICS, FPGAs, DSPs orsimilar devices. In addition, the instructions 726 can be implemented asfirmware or functional circuitry within hardware devices. Further, theinstructions 726 can be implemented in any combination hardware devicesand software components.

In the above description, numerous details are set forth. It will beapparent, however, to one of ordinary skill in the art having thebenefit of this disclosure, that embodiments of the present inventionmay be practiced without these specific details. In some instances,well-known structures and devices are shown in block diagram form,rather than in detail, in order to avoid obscuring the description.

Some portions of the detailed description are presented in terms ofalgorithms and symbolic representations of operations on data bitswithin a computer memory. These algorithmic descriptions andrepresentations are the means used by those skilled in the dataprocessing arts to most effectively convey the substance of their workto others skilled in the art. An algorithm is here and generally,conceived to be a self-consistent sequence of steps leading to a desiredresult. The steps are those requiring physical manipulations of physicalquantities. Usually, though not necessarily, these quantities take theform of electrical or magnetic signals capable of being stored,transferred, combined, compared and otherwise manipulated. It has provenconvenient at times, principally for reasons of common usage, to referto these signals as bits, values, elements, symbols, characters, terms,numbers or the like.

It should be borne in mind, however, that all of these and similar termsare to be associated with the appropriate physical quantities and aremerely convenient labels applied to these quantities. Unlessspecifically stated otherwise as apparent from the above discussion, itis appreciated that throughout the description, discussions utilizingterms such as “receiving,” “identifying,” “generating,” “providing,”“selecting,” “obtaining,” “receiving,” “determining,” “executing,”“requesting,” “communicating,” or the like, refer to the actions andprocesses of a computing system, or similar electronic computing device,that manipulates and transforms data represented as physical (e.g.,electronic) quantities within the computing system's registers andmemories into other data similarly represented as physical quantitieswithin the computing system memories or registers or other suchinformation storage, transmission or display devices.

The words “example” or “exemplary” are used herein to mean serving as anexample, instance or illustration. Any aspect or design described hereinas “example” or “exemplary” is not necessarily to be construed aspreferred or advantageous over other aspects or designs. Rather, use ofthe words “example” or “exemplary” is intended to present concepts in aconcrete fashion. As used in this application, the term “or” is intendedto mean an inclusive “or” rather than an exclusive “or.” That is, unlessspecified otherwise, or clear from context, “X includes A or B” isintended to mean any of the natural inclusive permutations. That is, ifX includes A; X includes B; or X includes both A and B, then “X includesA or B” is satisfied under any of the foregoing instances. In addition,the articles “a” and “an” as used in this application and the appendedclaims should generally be construed to mean “one or more” unlessspecified otherwise or clear from context to be directed to a singularform. Moreover, use of the term “an embodiment” or “one embodiment” or“an implementation” or “one implementation” throughout is not intendedto mean the same embodiment or implementation unless described as such.

Embodiments descried herein may also relate to an apparatus forperforming the operations herein. This apparatus may be speciallyconstructed for the required purposes, or it may comprise ageneral-purpose computer selectively activated or reconfigured by acomputer program stored in the computer. Such a computer program may bestored in a non-transitory computer-readable storage medium, such as,but not limited to, any type of disk including floppy disks, opticaldisks, CD-ROMs and magnetic-optical disks, read-only memories (ROMs),random access memories (RAMs), EPROMs, EEPROMs, magnetic or opticalcards, flash memory, or any type of media suitable for storingelectronic instructions. The term “computer-readable storage medium”should be taken to include a single medium or multiple media (e.g., acentralized or distributed database and/or associated caches andservers) that store the one or more sets of instructions. The term“computer-readable medium” shall also be taken to include any mediumthat is capable of storing, encoding or carrying a set of instructionsfor execution by the machine and that causes the machine to perform anyone or more of the methodologies of the present embodiments. The term“computer-readable storage medium” shall accordingly be taken toinclude, but not be limited to, solid-state memories, optical media,magnetic media, any medium that is capable of storing a set ofinstructions for execution by the machine and that causes the machine toperform any one or more of the methodologies of the present embodiments.

The algorithms and displays presented herein are not inherently relatedto any particular computer or other apparatus. Various general-purposesystems may be used with programs in accordance with the teachingsherein, or it may prove convenient to construct a more specializedapparatus to perform the required method steps. The required structurefor a variety of these systems will appear from the description below.In addition, the present embodiments are not described with reference toany particular programming language. It will be appreciated that avariety of programming languages may be used to implement the teachingsof the embodiments as described herein.

The above description sets forth numerous specific details such asexamples of specific systems, components, methods and so forth, in orderto provide a good understanding of several embodiments of the presentinvention. It will be apparent to one skilled in the art, however, thatat least some embodiments of the present invention may be practicedwithout these specific details. In other instances, well-knowncomponents or methods are not described in detail or are presented insimple block diagram format in order to avoid unnecessarily obscuringthe present invention. Thus, the specific details set forth above aremerely exemplary. Particular implementations may vary from theseexemplary details and still be contemplated to be within the scope ofthe present invention.

It is to be understood that the above description is intended to beillustrative and not restrictive. Many other embodiments will beapparent to those of skill in the art upon reading and understanding theabove description. The scope of the invention should, therefore, bedetermined with reference to the appended claims, along with the fullscope of equivalents to which such claims are entitled.

The invention claimed is:
 1. A method for generating a compositeinfrared image, comprising: receiving image data corresponding to aplurality of infrared images, wherein each of the infrared imagescorresponds to a subset portion of a geographical feature, such thatjoining the plurality of infrared images forms a composite infraredimage of the geographical feature; determining a global contrast rangefor the composite infrared image with a global minimum contrast valuecorresponding to a minimum infrared intensity value of the plurality ofinfrared images and a global maximum contrast value corresponding to amaximum infrared intensity of the plurality of infrared images; mappinga contrast level of at least one of the plurality of infrared imagesbased on the determined global contrast range for the composite infraredimage; and generating a composite infrared image of the geographicalfeature based on the plurality of mapped images that retainsdistinguishable intensity variations for each of the infrared imagesused for the composite image.
 2. The method of claim 1, wherein aminimum value of the contrast level of at least one of the plurality ofinfrared images is mapped to be equal to the global minimum contrastvalue.
 3. The method of claim 1, wherein a maximum value of the contrastlevel of at least one of the plurality of infrared images is mapped tobe equal to the global maximum contrast value.
 4. The method of claim 1,wherein mapping the contrast level of at least one of the plurality ofinfrared images comprises scaling an individual infrared intensity rangeof each thermal image to match the global contrast range.
 5. The methodof claim 1, wherein the geographical feature comprises at least one of ageographical region of land, a building, a rooftop, a structure, and acityscape.
 6. The method of claim 1, further comprising receiving theglobal contrast range from a user.
 7. The method of claim 1, whereingenerating a composite infrared image comprises exporting a digitalimage file.
 8. The method of claim 1, further comprising determining theglobal contrast range based on a maximum infrared intensity of theplurality of infrared images.
 9. A system comprising: a processor; aninfrared imaging device configured to capture image data correspondingto a plurality of infrared images, wherein each of the infrared imagescorresponds to one of at least a portion of a building and a landscapefeature, such that joining the plurality of infrared images forms acomposite infrared image of the at least a portion of the building orthe landscape feature; and a non-transitory memory in communication withthe processor, the memory comprising instructions executable by theprocessor to: determine a global contrast range for the compositeinfrared image with global minimum contrast value corresponding to aminimum infrared intensity value of the plurality of infrared images anda global maximum contrast value corresponding to a maximum infraredintensity of the plurality of infrared images; map a contrast level ofat least one of the plurality of infrared images based on the determinedglobal contrast range for the composite infrared image; and generate acomposite infrared image of the at least a portion of the building orthe landscape feature based on the plurality of mapped images, whereinthe generated composite infrared image retains distinguishable intensityvariations for each of the infrared images used for the composite image.10. The system of claim 9, wherein the instructions are furtherconfigured to cause the processor to map a minimum value of the infraredrange data for at least one of the plurality of infrared images to beequal to the global minimum contrast value.
 11. The system of claim 9,wherein the instructions are further configured to cause the processorto map a maximum value of the infrared range data for at least one ofthe plurality of infrared images to be equal to the global maximumcontrast value.
 12. The system of claim 9, wherein the instructions arefurther configured to cause the processor to scale an individualinfrared range of each infrared image to match the global contrastrange.
 13. The system of claim 9, wherein the instructions are furtherconfigured to cause the processor to exclude one or more extreme thermalvalues.
 14. The system of claim 13, wherein the instructions are furtherconfigured to cause the processor to receive a user indicated infraredrange outside of which infrared values should be excluded.
 15. Thesystem of claim 13, wherein the instructions are further configured tocause the processor to automatically determine infrared values thatshould be excluded.
 16. The system of claim 9, wherein the plurality ofinfrared images each include an initial contrast level determined froman individual infrared range.
 17. The system of claim 9, wherein each ofthe infrared images corresponds to at least a portion of a building.